package api

type MerChantNameRes struct {
	MerNameCn string `json:"merNameCn"`
	MerNameEn string `json:"merNameEn"`
}

type MerChantTempRes struct {
	Account string `json:"account"`
	ReqJson string `json:"reqJson"`
}

type MerChantBossReq struct {
	MerName     string `json:"merName"`
	PhoneNum    string `json:"phoneNum"`
	Status      string `json:"status"`
	CompanyName string `json:"companyName"`
	StartTime   string `json:"startTime"`
	EndTime     string `json:"endTime"`
	PageSize    uint64 `json:"pageSize"`
	PageNo      uint64 `json:"pageNo"`
	SortFields  string `json:"sortFields"`
	SortMethod  string `json:"sortMethod"`
}

type MerChantBossRes struct {
	MerOrderNo  string `json:"merOrderNo"`
	Email       string `json:"email"`
	CountryCode string `json:"countryCode"`
	PhoneNum    string `json:"phoneNum"`
	MerNameEn   string `json:"merNameEn"`
	MerNameCn   string `json:"merNameCn"`
	CreatedAt   string `json:"createdAt"`
	UpdatedAt   string `json:"updatedAt"`
	Status      string `json:"status"`
	Message     string `json:"message"`
	Account     string `json:"account"`
}

type MerChantBossSuccRes struct {
	MerOrderNo   string `json:"merOrderNo"`
	MerChantNo   string `json:"merChantNo"`
	CountryCode  string `json:"countryCode"`
	PhoneNum     string `json:"phoneNum"`
	MerNameEn    string `json:"merNameEn"`
	MerNameCn    string `json:"merNameCn"`
	CreatedAt    string `json:"createdAt"`
	UpdatedAt    string `json:"updatedAt"`
	Status       string `json:"status"`
	Account      string `json:"account"`
	BankNums     int    `json:"bankNums"`
	Email        string `json:"email"`
	FeeStatus    string `json:"feeStatus"`
	CompanyName  string `json:"companyName"`
	AgentAccount string `json:"agentAccount"`
}

type MerOpenTrendReq struct {
	StartTime string `json:"startTime"`
	EndTime   string `json:"endTime"`
}

type MerOpenStatusRes struct {
	Status string `json:"status"`
	Num    int    `json:"num"`
}

type MerOpenTrendRes struct {
	Last7DaysList  []Last7Days  `json:"last7DayList"`
	Last2WeeksList []Last2Weeks `json:"last2WeeksList"`
	LastMonthsList []LastMonths `json:"lastMonthsList"`
	ThisYearsList  []ThisYears  `json:"thisYearsList"`
	//DynamicDateList []DynamicDate `json:"dynamicDateList"`
}

type Last7Days struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

type Last2Weeks struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

type ThisYears struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

type LastMonths struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

type DynamicDateRes struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

type BusinessNatureRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type SourceFundRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type PaymentPurposeRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type TurnoverRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type TransactionRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type MerChantVAReq struct {
	MerOrderNo               string             `json:"merOrderNo"`
	BizFlow                  string             `json:"bizFlow"`
	Email                    string             `json:"email"`
	PhoneAreaCode            string             `json:"phoneAreaCode"`
	PhoneNum                 string             `json:"phoneNum"`
	ReferralChannel          string             `json:"referralChannel"`
	CountryCode              string             `json:"countryCode"`
	MerNameEn                string             `json:"merNameEn"`
	MerNameCn                string             `json:"merNameCn"`
	EstablishDate            string             `json:"establishDate"`
	BrExpiryDate             string             `json:"brExpiryDate"`
	RegistrationAddress      string             `json:"registrationAddress"`
	EnterprisePath           []string           `json:"enterprisePath"`
	ParentRemark             string             `json:"parentRemark"`
	OwnerShipPath            []string           `json:"ownerShipPath"`
	ParentCertificate        []string           `json:"parentCertificate"`
	ParentCompany            []CompanyList      `json:"parentCompany"`
	BranchRemark             string             `json:"branchRemark"`
	BranchCompany            []CompanyList      `json:"branchCompany"`
	Certificate              []string           `json:"certificate"`
	CertificateNumber        string             `json:"certificateNumber"`
	CompanyCertificate       []string           `json:"companyCertificate"`
	CompanyCertificateNumber string             `json:"companyCertificateNumber"`
	ParticipantsType         []string           `json:"participantsType"`
	Nnc1Path                 []string           `json:"nnc1Path"`
	Nar1Path1                []string           `json:"nar1Path1"`
	Mermorandum              []string           `json:"mermorandum"`
	CustomerIdentity         []string           `json:"customerIdentity"`
	Customer                 []PersonalInfoList `json:"customer"`
	Shareholder              []PersonalInfoList `json:"shareholder"`
	Director                 []PersonalInfoList `json:"director"`
	LegalPerson              []PersonalInfoList `json:"legalPerson"`
	Authorization            []string           `json:"authorization"`
	SourceFunds              []string           `json:"sourceFunds"`
	PaymentPurpose           []string           `json:"paymentPurpose"`
	RiskCountryTransaction   string             `json:"riskCountryTransaction"`
	RiskCountries            []CompanyList      `json:"riskCountries"`
	AddMaterial              string             `json:"addMaterial"`
	ReMaterial               ReMaterial         `json:"reMaterial"`
	RealCompanyAddress       string             `json:"realCompanyAddress"`
	AddressMaterial          []string           `json:"addressMaterial"`
	AddressType              string             `json:"addressType"`
	CompanyWebsite           string             `json:"companyWebsite"`
	ClientCountry            []string           `json:"clientCountry"`
	BusinessCountry          []string           `json:"businessCountry"`
	SuppliersCountry         []string           `json:"suppliersCountry"`
	InCountry                []string           `json:"inCountry"`
	OutCountry               []string           `json:"outCountry"`
	LastYearTurnover         string             `json:"lastYearTurnover"`
	TransactionAmount        string             `json:"transactionAmount"`
	Transaction              []TransactionList  `json:"transaction"`
	WebSiteOrApp             string             `json:"webSiteOrApp"`
	BusinessNature           BusinessNature     `json:"businessNature"`
	NoticeMarker             string             `json:"noticeMarker"`
	CallBackUrl              string             `json:"callBackUrl"`
	OtherPath                string             `json:"otherPath"`
	Postscript               string             `json:"postscript"`
	VaFlag                   string             `json:"vaFlag"`
	VaInfo                   []VaInfoList       `json:"vaInfo"`
	Account                  string             `json:"account"`
}

type VaInfoList struct {
	MerOrderNo       string   `json:"merOrderNo"`
	ParentCode       string   `json:"parentCode"`
	ApplyCode        string   `json:"applyCode"`
	Area             string   `json:"area"`
	Currency         string   `json:"currency"`
	AcctSimpleName   string   `json:"acctSimpleName"`
	BankType         string   `json:"bankType"`
	ShopName         string   `json:"shopName"`
	ShopUrl          string   `json:"shopUrl"`
	CollectType      string   `json:"collectType"`
	CollectName      string   `json:"collectName"`
	WebSiteUrl       string   `json:"webSiteUrl"`
	IsSameName       string   `json:"isSameName"`
	BusDesDocument   []string `json:"busDesDocument"`
	StoreHoldCertify []string `json:"storeHoldCertify"`
	CallBackUrl      string   `json:"callBackUrl"`
	OtherPath        string   `json:"otherPath"`
	Postscript       string   `json:"postscript"`
}

type CompanyList struct {
	Name    string `json:"name"`
	Country string `json:"country"`
}

type PersonalInfoList struct {
	Type             string   `json:"type"`
	Name             string   `json:"name"`
	IssuPlace        string   `json:"issuPlace"`
	Nationality      string   `json:"nationality"`
	IdNumber         string   `json:"idNumber"`
	BirthDate        string   `json:"birthDate"`
	CertificateDate  string   `json:"certificateDate"`
	ResidenceCountry string   `json:"residenceCountry"`
	Address          string   `json:"address"`
	Certificates     []string `json:"certificates"`
}

type ReMaterial struct {
	FinancialStatements []string      `json:"financialStatements"`
	Questionnaire       []string      `json:"questionnaire"`
	BestCustomer        []CompanyList `json:"bestCustomer"`
	BestPartner         []CompanyList `json:"bestPartner"`
}

type TransactionList struct {
	TradeType   string `json:"tradeType"`
	TradeOption string `json:"tradeOption"`
	Country     string `json:"country"`
}

type BusinessNature struct {
	NatureType string   `json:"natureType"`
	Natures    []string `json:"natures"`
}

type Bean struct {
	JsonEnc    string `json:"jsonEnc"`
	KeyEnc     string `json:"keyEnc"`
	Sign       string `json:"sign"`
	MerchantNo string `json:"merchantNo"`
}

type JsonStr struct {
	Head HeadStr `json:"head"`
	//Body BodyStr `json:"body"`
}

type HeadStr struct {
	Language  string `json:"language"`
	TradeCode string `json:"tradeCode"`
	TradeTime int64  `json:"tradeTime"`
	TradeType string `json:"tradeType"`
	Version   string `json:"version"`
	RespDesc  string `json:"respDesc"`
	RespCode  string `json:"respCode"`
}

// 业务接口返回结果集
type MerChantVARes struct {
	MerchantVAHead HeadStr           `json:"head"`
	MerchantVABody MerchantVABodyStr `json:"body"`
}

type MerchantVABodyStr struct {
	BizFlow    string `json:"bizFlow"`
	MerOrderNo string `json:"merOrderNo"`
	Status     string `json:"status"`
	Code       string `json:"code"`
	Message    string `json:"message"`
}

type MerChantTempReq struct {
	Account   string `json:"account"`
	ReqJson   string `json:"reqJson"`
	ReqBackup string `json:"reqBackup"`
}

type GetMerchantAgentCompanyInfoRes struct {
	Id          string `json:"id"`
	CompanyName string `json:"company_name"`
}
